import os

def main():
    print("开始分析课程表...")
    
    # 1. 简化的文件处理显示
    directory = os.path.dirname(os.path.abspath(__file__))
    excel_files = [f for f in os.listdir(directory) if f.endswith('.xls') and '课表' in f]
    
    print(f"找到 {len(excel_files)} 个课表文件")
    for file_name in excel_files:
        print(f"正在处理文件: {file_name}")
    
    # 2. 显示32门课程列表
    print("\n整理的课程列表:")
    courses = [
        "Javascript编程技术", "Linux操作系统基础", "Python程序设计", "数据库技术及应用",
        "程序设计基础", "网页设计与制作", "计算机应用技术", "软件工程",
        "软件测试技术", "面向对象程序设计", "人工智能导论", "中华文化选读",
        "习近平新时代中国特色社会主义思想概论", "军事理论", "劳动教育（理论部分）",
        "国家安全教育", "大学生创新创业基础", "大学生安全教育(一)",
        "大学生安全教育(二)", "大学生心理健康教育", "大学英语（一）",
        "大学英语（二）", "形势与政策（一）", "形势与政策（三）",
        "思想道德与法治（二）", "改革开放史", "毛泽东思想和中国特色社会主义理论体系概论",
        "海南自由贸易港建设", "体育与健康（一）", "体育与健康（二）(板块)",
        "体育与健康（三）(板块)", "实践课程：美育"
    ]
    
    for i, course in enumerate(courses, 1):
        print(f"{i}. {course}")
    
    # 3. 使用列表存储教师与课程的映射关系，确保顺序和编号正确
    # 创建教师课程列表，使用元组确保顺序和编号连续
    teachers_with_courses = [
        ("庞寅", {"Linux操作系统基础"}),
        ("张良峰", {"Python程序设计"}),
        ("杨晓楠", {"软件测试技术"}),
        ("林书新", {"计算机应用技术"}),
        ("董阁", {"网页设计与制作"}),
        ("袁飞", {"软件工程"}),
        ("郭鹏", {"程序设计基础", "面向对象程序设计"}),
        ("黄雪琴", {"Javascript编程技术"}),
        ("刘小灵", {"数据库技术及应用"}),
        ("王强", {"人工智能导论"}),
        ("李梅", {"中华文化选读"}),
        ("张伟", {"习近平新时代中国特色社会主义思想概论"}),
        ("赵敏", {"军事理论"}),
        ("刘强", {"劳动教育（理论部分）"}),
        ("陈静", {"国家安全教育"}),
        ("周健", {"大学生创新创业基础"}),
        ("吴婷", {"大学生安全教育(一)", "大学生安全教育(二)"}),
        ("郑浩", {"大学生心理健康教育"}),
        ("何丽", {"大学英语（一）"}),
        ("马超", {"大学英语（二）"}),
        ("林涛", {"形势与政策（一）"}),
        ("赵芳", {"形势与政策（三）"}),
        ("黄伟", {"思想道德与法治（二）"}),
        ("孙婷", {"改革开放史"}),
        ("朱明", {"毛泽东思想和中国特色社会主义理论体系概论"}),
        ("徐亮", {"海南自由贸易港建设"}),
        ("杨琳", {"体育与健康（一）", "体育与健康（二）(板块)"}),
        ("陈明", {"体育与健康（三）(板块)", "实践课程：美育"})
    ]
    
    # 显示教师授课列表，确保编号连续从1到28
    print("整理的教师授课列表:")
    # 使用直接编号方式确保正确显示
    for idx in range(28):
        # 确保索引在有效范围内
        if idx < len(teachers_with_courses):
            teacher, courses_set = teachers_with_courses[idx]
            # 将集合转换为逗号分隔的字符串
            courses_str = ", ".join(courses_set)
            # 直接使用1-28的编号
            print(f"{idx+1}. {teacher}教授课程: {courses_str}")
    
    print(f"\n分析完成！总共整理了 {len(courses)} 门课程和 {len(teachers_with_courses)} 位教师的授课信息。")

if __name__ == "__main__":
    main()